package de.szut.ita13sommerfeld.blockadventure.gameentities;

import java.awt.Graphics;
import java.awt.Rectangle;
import java.util.LinkedList;

import de.szut.ita13sommerfeld.blockadventure.level.SpawnPoint;

public abstract class Item extends Entity {
	
	public static final float WIDTH = 16;
	public static final float HEIGHT = 16;

	public static final float MAX_VELOCITY = 10;
	
	protected float gravity;
	protected boolean stackable;
	protected int value;
	
	public Item(float x, float y, float width, float height, SpawnPoint spawnpoint, float gravity, int value, boolean stackable) {
		super(x, y, width, height, spawnpoint);
		this.stackable = stackable;
		this.gravity = gravity;
		this.value = value;
	}

	public abstract void render(Graphics g);
	public abstract void tick(LinkedList<Entity> entities);
	public abstract Rectangle getBounds();

	public boolean isStackable() {
		return stackable;
	}

	public void setStackable(boolean stackable) {
		this.stackable = stackable;
	}

	public int getValue() {
		return value;
	}

	public void setValue(int value) {
		this.value = value;
	}

	public float getGravity() {
		return gravity;
	}

	public void setGravity(float gravity) {
		this.gravity = gravity;
	}	
}
